
.collapsible-item {
    --display-toggle: none;
    --collapsible-height: none;
    --toggle-size: 24px;
    --gradient-size: 44px;

    &.collapsible-loading-height {
        display: block !important;
        height: auto !important;
        --collapsible-height: auto !important;
        --display-toggle: none !important;
    }

    .collapsible-toggle {
        display: var(--display-toggle);
    }

    @include media-breakpoint-down(sm) {
        &.collapsible-enabled:not(.collapsible-loading-height) {
            position: relative;
            padding-bottom: var(--toggle-size); // So the Show less button can fit.
            --display-toggle: block;
            height: calc(var(--collapsible-height, auto) + var(--toggle-size));
            @include core-transition(height, 300ms);

            .collapsible-toggle {
                position: absolute;
                text-align: center;
                z-index: 7;
                text-transform: none;
                font-weight: normal;
                background-color: var(--collapsible-toggle-background);
                color: var(--collapsible-toggle-text);
                min-height: var(--toggle-size);
                min-width: var(--toggle-size);
                height: var(--toggle-size);
                width: var(--toggle-size);
                --border-radius: var(--mdl-shape-borderRadius-xl);
                border-radius: var(--border-radius);
                --padding-start: 0px;
                --padding-end: 0px;
                margin: 0px;
                @include position (null, 0, 0, null);

                .collapsible-toggle-arrow {
                    width: var(--toggle-size);
                    height: var(--toggle-size);

                    background-position: center;
                    background-repeat: no-repeat;
                    background-size: 14px 14px;
                    transform: rotate(-90deg);

                    @include core-transition(transform, 500ms);

                    @include push-arrow-color(#626262);

                    @include darkmode() {
                        @include push-arrow-color(#ffffff);
                    }
                }
            }

            &.collapsible-collapsed {
                overflow: hidden;
                min-height: calc(var(--toggle-size) + 12px);
                height: var(--collapsible-height, auto);

                .collapsible-toggle-arrow {
                    transform: rotate(90deg);
                }

                &:before {
                    content: '';
                    height: 100%;
                    position: absolute;
                    background: linear-gradient(to bottom, rgba(var(--background-gradient-rgb), 0) calc(100% - var(--gradient-size)), rgba(var(--background-gradient-rgb), 1) calc(100% - 4px));
                    z-index: 6;
                    @include position(null, 0, 0, 0);
                }
            }
        }
    }
}
